home *** CD-ROM | disk | FTP | other *** search
/ Grand Slam 3 / Grand Slam 3.iso / 030 / atccom.arj / ATCFILES.TXT < prev    next >
Text File  |  1995-08-31  |  33KB  |  914 lines

  1. ============================================================================
  2. General disclaimer:
  3. ============================================================================
  4. This is version 0.2 (date 08/31/95) and isn't finished. 
  5.  
  6. Although it works fine for me it may fail miserably for you! 
  7. However, it should be possible to create atc "adventures" with the program
  8. as it is, so I've uploaded it to get some feedback. 
  9. Please let me know what you think about it, and be sure mention any 
  10. enhancements that you would like to see!
  11.  
  12.  
  13. ============================================================================
  14. DESCRIPTION:
  15. ============================================================================
  16.  
  17. This file contain the description of the *.atc and *.pnt files used in 
  18. ATCCOM. You only have to read (and understand <g>) this if you want to 
  19. write ATC programs for ATCCOM.
  20.  
  21. See the file ATCCOM.TXT for a general description and users guide for 
  22. ATCCOM.
  23.  
  24.  
  25.  
  26. ==============================================================================
  27. DESCRIPTION OF THE FILES:
  28. ==============================================================================
  29. To use the ATCCOM, three text files is needed:
  30.  
  31.   - ATCCOM.CFG which contain configuration information.
  32.   - A points file which contain information about points such as VORs NDBs etc.
  33.   - A program which contain the "program" for the route the user wants to fly.
  34.  
  35. These files should be in the same directory as the program.
  36.  
  37. I've enclosed a few example files in this upload.
  38.  
  39. In general the following rules apply:
  40.     Lines starting with # is ignored, and can be used for comments.
  41.     Blank lines are ignored.
  42.  
  43. =============================================================================
  44. ATCCOM.CFG:
  45. =============================================================================
  46.  
  47. The following lines should exist in this file:
  48.  
  49. COMPORT  1
  50. BAUDRATE 300
  51. TALK     0
  52.  
  53.  
  54. The COMPORT line tells ATCCOM which comport to use when communicating with FS5.
  55. You should of course connect one end of the dualplayer cable to this comport.
  56.  
  57.  
  58. The BAUDRATE line tells ATCCOM which baudrate to use. This should be the same
  59. rate as is used in FS5 (look in the ENTERTAINMENT/DUALPLAYER setup window in
  60. FS5).
  61. NOTE: Baudrates higher than 300 don't seem to work at the moment (there's
  62.       lots of transmission errors). This may be because I run ATCCOM and
  63.       FS5 on the same computer. Feel free to experiment with higher baudrates.
  64.  
  65. The TALK line tells ATCCOM if it should try to use speech instead of sending 
  66. text messages to FS5.
  67. Set this parameter to 1 if you want ATCCOM to speak to you. There's some
  68. hefty requirements for this; see atccom.txt for further information.
  69.  
  70.  
  71. =============================================================================
  72. The points file (*.PNT)
  73. =============================================================================
  74.  
  75. This file contain information about the points which are used in the atc 
  76. program.
  77.  
  78. At the moment ATCCOM has a limit of 100 points in the *.pnt file.
  79.  
  80. Each point is described by a group of lines:
  81.  
  82. POINT   <id>
  83.     <parameter1> <value1>
  84.     <parameter2> <value2>
  85.     .           .
  86.     .          .
  87. END
  88.  
  89. The following parameters are valid:
  90.  
  91. TYPE (REQUIRED):
  92.     Describes the type of the point. Possible values are VOR, ILS, NDB and FIX.
  93.  
  94. NAME (REQUIRED):
  95.     A longer name for the point.
  96.  
  97. POSITION (Either POSITION or RPOSITION should be given):
  98.     Position of the point. 
  99.     The format of the position is:
  100.     <latitude>, <longitude>
  101.     <latitude> and <longitude> is given as three numbers: degrees, minutes and 
  102.     seconds. There may be decimals on the seconds.
  103.     For <latitude>, northern values are positive; for <longitude>, eastern 
  104.     values are positive.
  105.  
  106. RPOSITION (Either POSITION or RPOSITION should be given):
  107.     Position of the point given relative to another point defined earlier 
  108.     in the file.
  109.  
  110.     The format of the position is:
  111.  
  112.     <pointtype>:<pointid> <radial> <distance>
  113.  
  114.     Here <pointtype> is the type of the reference point (VOR, ILS, NDB or FIX), 
  115.     and <pointid> is the id of the reference point.
  116.     <radial> is a radial from the reference point, and <distance> is the 
  117.     distance (in nm) from the reference point.
  118.  
  119.     Example:
  120.         RPOSITION VOR:HAM 76 13
  121.         Defines a point 13 nm out of radial 76 from the VOR with id HAM 
  122.     (ie. Hamburg)
  123.  
  124. ELEVATION (OPTIONAL):
  125.     Elevation of the point in feet.
  126.     Not used at the moment.
  127.  
  128. MVARIATION (OPTIONAL):
  129.     Magnetic variation at the point (in degrees).
  130.  
  131. RANGE (OPTIONAL):
  132.     Defines the range of the navaid at this point. The range should be given in
  133.     nautical miles.
  134.     Not used at the moment.
  135.  
  136. NFREQUENCY (OPTIONAL):
  137.     Frequency of the navaid.
  138.     Not used at the moment.
  139.  
  140.  
  141. I've written a program, READBGL, which can extract this information from a FS5
  142. scenery file. See READBGL.TXT for further information.
  143.  
  144. =============================================================================
  145. The program file (*.ATC)
  146. =============================================================================
  147.  
  148. The program file contain instructions for ATCCOM. The program consist of 
  149. commands which are executed sequentially from top to bottom. However the 
  150. program flow can be redirected by the GOTO command.
  151.  
  152. The following commands are available:
  153.  
  154. ALTITUDE <altitude>
  155.     Define the altitude used for global altitude controls which doesn't 
  156.     explicitly mention an altitude.
  157.  
  158. SPEED <speed>
  159.     Define the speed used for global speed controls which doesn't 
  160.     explicitly mention a speed.
  161.  
  162. MESSAGE [*][$]<message>
  163.     Send the message to FS5, if the message starts with a star (*), then wait 
  164.     for a "roger" from the pilot.
  165.     If the message start with a dollar sign, the message will be sent to the
  166.     aircraft at once, otherwise messages will be collected and sent together
  167.     at the next WAIT command.
  168.     If the message contains a vertical bar (|), then change line at this place
  169.     in the message. 
  170.     Because of a limit in FS5, the longest possible message is 49 characters 
  171.     long. Use |'s to split a message up if necessary. (ATCCOM will split 
  172.     messages if they're longer than 49 chars, however the message may be split 
  173.     in the middle of a word!)
  174.     SPECIAL SPEECH CONSIDERATIONS:
  175.     If you want the speech engine to spell a word out letter for letter,
  176.     then inclose the word in "..". The ".." won't show up if you aren't 
  177.     using speech.
  178.     Example:
  179.         Message Fly direct "PHK"
  180.         will be spoken as: Fly direct P H K
  181.  
  182. FLALTITUDE <altitude>                (OPTIONAL, default is 18000)
  183.     Defines where the transition from/to flightlevels is.
  184.     Example:
  185.     If FLALTITUDE 10000, then 12000 ft will be reported as flight level 120,
  186.     while 9000 ft will be reported as 9000 ft.
  187.  
  188. GOTO <label>
  189.     Transfer program control to the label <label>.
  190.  
  191. GOSUB <label>
  192.     Temporary transfer program control to the label <label>.
  193.     The current state of the program will be saved, and restored when a RETURN
  194.     command is executed.
  195.     You can use the GOSUB/RETURN combination to define global triggers and 
  196.     controls. See the miadfw.atc for an example of this.
  197.  
  198. RETURN
  199.     Return from a GOSUB call.
  200.  
  201. LABEL <label>
  202.     Defines a target for a GOTO or GOSUB command.
  203.  
  204.  
  205. STOP
  206.     Stop the atc program. This doesn't stop ATCCOM (you have to stop this by 
  207.     closing the ATCCOM window), but no more orders are issued from ATCCOM.
  208.  
  209. TRIGGER <triggertype>
  210.     <parameter1> <value1>
  211.     <parameter2> <value2>
  212.     .            .
  213. END
  214.  
  215.     Defines a local trigger. 
  216.     A trigger defines a condition that ATCCOM should monitor 
  217.     such as reaching a given altitude, course, speed, point etc.
  218.     When the condition is triggered, a action is executed. This action could
  219.     be to send a message to the aircraft, shift to the next leg of the route
  220.     or any other command.
  221.     Local triggers are in force until the next WAIT command finishes. 
  222.  
  223.     Also a trigger may be in repeat mode or not. If the trigger is in repeat 
  224.     mode, it may be reactivated again later, otherwise it only triggers once.
  225.     See the description of trigger types below for information about the 
  226.     different triggers.
  227.  
  228. GTRIGGER <triggertype>
  229.     Name     <thename>
  230.     <parameter1> <value1>
  231.     <parameter2> <value2>
  232.     .            .
  233. END
  234.  
  235.     Defines a global trigger. 
  236.     A global trigger works exactly as a local trigger (see above) except that
  237.     it remains in force until explicitly turned off.
  238.     A global trigger must have a name. If you create another trigger with the
  239.     same name, the old trigger is turned off automatically.
  240.  
  241. CONTROL <controltype>
  242.     <parameter1> <value1>
  243.     <parameter2> <value2>
  244.     .            .
  245. END
  246.  
  247.     Defines a local control. 
  248.     A control defines something that ATCCOM should monitor 
  249.     such as altitude, course, speed, radial following etc.
  250.     If the aircraft isn't doing what is wanted, then the control will tell
  251.     the pilot what to do.
  252.     If the aircraft isn't at the assigned altitude, course, etc. when the 
  253.     control is activated, the control will monitor that the aircraft is moving
  254.     towards the assigned value. It may even verify that this is happening fast
  255.     enough.
  256.     Local controls are in force until the next WAIT command finishes. 
  257.     Some controls can also react as triggers, ie. they may execute an
  258.     action when a certain condition exist. 
  259.     
  260.     See the description of control types below for information about the 
  261.     different controls.
  262.  
  263. GCONTROL <controltype>
  264.     Name     <thename>
  265.     <parameter1> <value1>
  266.     <parameter2> <value2>
  267.     .            .
  268. END
  269.  
  270.     Defines a global control. 
  271.     A global control works exactly as a local control (see above) except that
  272.     it remains in force until explicitly turned off.
  273.     A global control must have a name. If you create another control with the
  274.     same name, the old control is turned off automatically.
  275.  
  276.  
  277. WAIT
  278.     Tells ATCCOM to wait for a trigger (or control) to activate while 
  279.     monitoring all active controls. 
  280.  
  281.     When a trigger is activating, then execute the trigger action, and either
  282.     continue with the program (for actions STOP, NEXT, GOSUB, RETURN and GOTO),
  283.     or continue waiting (for actions MESSAGE, ALTITUDE, SPEED, OFF).
  284.     All local triggers and controls are disabled when the WAIT command finishes.
  285.  
  286. NEXT
  287.     This command is only used in trigger actions. It stops the WAIT and tells 
  288.     ATCCOM to continue with the next instruction.
  289.  
  290. OFF <name>
  291.     Disables the trigger or control with the name <name>.
  292.  
  293.  
  294.  
  295. Controls:
  296. ===========
  297.     A control defines something that ATCCOM should monitor 
  298.     such as altitude, course, speed, radial following etc.
  299.     The format of a control commands are:
  300.  
  301.     CONTROL <type>
  302.         <parameter1> <value1>
  303.     <parameter2> <value2>
  304.     .         .
  305.     END
  306.  
  307.     GCONTROL <type>
  308.     Name         <value>
  309.         <parameter1> <value1>
  310.     <parameter2> <value2>
  311.     .         .
  312.     END
  313.  
  314.     Here <type> defines the type of the control (see below); the other lines 
  315.     define the attributes of the control.
  316.  
  317.     The following parameters may be used in all the different control types:
  318.  
  319.  
  320.         INITIALMSG    <0 or 1>           (OPTIONAL, default 0)
  321.         If INITIALMSG is 1, then the control will tell the aircraft what is 
  322.         wanted even if the aircraft is at the correct heading, altitude etc.
  323.         Otherwise the control will only send messages when the aircraft 
  324.         isn't at the correct heading, altitude etc.
  325.         Example:
  326.             If INITIALMSG is set for an ALTITUDE trigger which controls that
  327.         the altitude is 20000 ft, then the control will send the message
  328.         "Maintain 20000 ft" when it is activated, otherwise it won't 
  329.         send this command.
  330.  
  331.     HOLDSPEED <value>            (OPTIONAL, default 0)
  332.         This is the minimum speed with which the aircraft should reach the
  333.         wanted altitude, heading or point. (The unit for <value> is 
  334.         100ft/min for altitudes, knots for points and degrees/min for 
  335.         headings). The default value for this parameter is 0, so normally
  336.         the aircraft may be as slow as it want to reach its destination.
  337.         However it may not fly the other way.
  338.  
  339.         Example:
  340.             If HOLDSPEED is set for an ALTITUDE trigger, and the aircraft
  341.         is climbing too slowly to the assigned altitude, then the 
  342.         message: "Please expedite climb to 20000 ft" is sent.
  343.  
  344.     NAME <control name>             (OPTIONAL for local controls)
  345.         Gives a name to a control. Global controls must have a name.
  346.         There can only exist one control with a given name, if you
  347.         create another control with the same name, the old one is turned
  348.             off automatically.
  349.  
  350.     REPEAT    <delay in seconds>        (OPTIONAL, default is 20 sec.)
  351.         Define how often ATC should check the control.
  352.  
  353.     ACTION    <Action;Action...>         (OPTIONAL, default is no action)
  354.         Defines the action to execute when the trigger condition is 
  355.         triggered. It is possible to give more than one action. This can
  356.         be done by either separating the actions with semicolons, or by
  357.         writing more ACTION parameter lines.
  358.         Example:
  359.             Action Message Descend to fl 220; Altitude fl220
  360.         and
  361.             Action Message Descend to fl 220
  362.             Action Altitude fl220
  363.         have exactly the same meaning.
  364.  
  365.         See the description of triggers for possible actions.
  366.         
  367.  
  368.  
  369.     Ok, now for the different control types:
  370.  
  371.     CONTROL ALTITUDE: 
  372.     -----------------
  373.        This control is used to control that an aircraft is at or flying to a 
  374.        given altitude:
  375.  
  376.        The following parameters may be given:
  377.  
  378.        ALTITUDE  <altitude>            (OPTIONAL)
  379.            Defines the wanted altitude in feet or flight level. 
  380.        Example:
  381.            Altitude 18000 
  382.            Altitude FL180
  383.        If this parameter is left out, then the parameter given with the
  384.        ALTITUDE command is used instead. 
  385.  
  386.        APRECISION <precision>            (OPTIONAL, default is 300)
  387.            Defines the wanted precision in altitude. 
  388.        This precision is only checked after the aircraft has been at the 
  389.        assigned altitude.
  390.  
  391.        Example: 
  392.            If <precision> is 300, ATC will start complaining if the 
  393.            aircraft departs from the assigned altitude with more than 
  394.            300 ft.
  395.  
  396.     ACTION <actions>            (OPTIONAL, default is no action)
  397.        Actions will be executed when the aircraft is near the given 
  398.        altitude.
  399.     
  400.  
  401.     CONTROL COURSE: 
  402.     ---------------
  403.        This control is used to guide an aircraft towards a given point by giving
  404.        course information.
  405.  
  406.        The following parameters may be given:
  407.  
  408.        POINT  <pointtype>:<pointid>        (REQUIRED)
  409.            Guide the aircraft to this point.
  410.  
  411.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  412.            Defines the wanted precision in distance from the point (unit is 
  413.        nm). 
  414.        If the aircraft is closer than this distance from the point, then 
  415.        don't send any messages to the aircraft as it is where it should be!
  416.  
  417.        CPRECISION <precision>            (OPTIONAL, default is 5 deg.)
  418.            If the current course to the point differs from the assigned course 
  419.        with more than this value, then assign a new heading to the 
  420.        aircraft.
  421.        If the current heading differs from the assigned course with more
  422.        than this value, then remind the aircraft.
  423.  
  424.     ACTION <actions>            (OPTIONAL, default is no action)
  425.        Actions will be executed when the aircraft is near the given 
  426.        point.
  427.  
  428.  
  429.     CONTROL HEADING: 
  430.     ----------------
  431.        This control is used to control the heading of the aircraft.
  432.  
  433.        The following parameters may be given:
  434.  
  435.        HEADING <heading>            (REQUIRED)
  436.            Defines the wanted heading in degrees.
  437.  
  438.        HPRECISION <precision>            (OPTIONAL, default is 10 deg.)
  439.            Defines the wanted precision in heading. 
  440.        This precision is only checked after the aircraft has been at the 
  441.        assigned heading.
  442.  
  443.        Example: 
  444.            If <precision> is 10, ATC will start complaining if the 
  445.            aircraft departs from the assigned heading with more than 
  446.            10 degrees.
  447.  
  448.        POINT  <pointtype>:<pointid>        (OPTIONAL)
  449.            Use magnetic variation from this point. You should either specify
  450.        a point, or directly specify a magnetic variation by using the 
  451.        MVAR parameter.
  452.  
  453.     MVAR    <magnetic variation in degrees>    (OPTIONAL)
  454.        Use this magnetic variation when computing headings.
  455.        You should either specify this, or specify a point with the POINT
  456.        parameter.
  457.  
  458.     ACTION <actions>            (OPTIONAL, default is no action)
  459.        Actions will be executed when the aircraft is near the given 
  460.        heading.
  461.  
  462.     CONTROL RHEADING: 
  463.     ----------------
  464.        This control is used to control the heading of the aircraft.
  465.     ATCCOM will generate a number of random headings, which the aircraft
  466.     should follow for a random time.
  467.  
  468.        The following parameters may be given:
  469.  
  470.        HEADING <heading>            (REQUIRED)
  471.            The random headings will be in the neighbourhood of this heading.
  472.  
  473.        HPRECISION <precision>            (OPTIONAL, default is 10 deg.)
  474.            Defines the wanted precision in heading. 
  475.  
  476.        VARIATION <variation>            (OPTIONAL, default is 45 deg.)
  477.            Defines the variation in the random headings. The computed headings
  478.        will be at most this far from the previous heading.
  479.  
  480.  
  481.        NUMBER <nbrofheadings>             (OPTIONAL, default is 3 hdgs)
  482.        This parameter defines the number of ramdom generated headings.
  483.  
  484.     DELAY <nbrofseconds)             (OPTIONAL, default is 60 sec.)
  485.        The aircraft will be ordered to follow the headings for 
  486.        this time (plusminus a random factor).
  487.  
  488.        POINT  <pointtype>:<pointid>        (REQUIRED)
  489.            Use magnetic variation from this point. 
  490.  
  491.     ACTION <actions>            (OPTIONAL, default is no action)
  492.        Actions will be executed when the aircraft has followed all the
  493.        given headings.
  494.  
  495.  
  496.     CONTROL HOLDING: 
  497.     ----------------
  498.        This control is used to control that an aircraft is entering or staying
  499.        in a holding pattern.
  500.        This is simply done by controlling that the aircraft is staying near
  501.        a given point.
  502.        NOTE: This control hasn't been tested yet!!!!!!
  503.  
  504.        The following parameters may be given:
  505.  
  506.        POINT  <pointtype>:<pointid>        (REQUIRED)
  507.            Control that the aircraft is flying towards and/or staying near
  508.        this point.
  509.  
  510.        DPRECISION <precision>            (OPTIONAL, default is 10 nm)
  511.            Defines the wanted precision in distance from the point (unit is 
  512.        nm). 
  513.        If the aircraft has been within this distance, and has moved further
  514.        away, then start complaining.
  515.  
  516.     ACTION <actions>            (OPTIONAL, default is no action)
  517.        Actions will be executed when the aircraft is in the holding 
  518.        pattern.
  519.  
  520.     CONTROL POINT: 
  521.     --------------
  522.        This control is used to control that an aircraft is flying towards a 
  523.        given point.
  524.  
  525.        The following parameters may be given:
  526.  
  527.        POINT  <pointtype>:<pointid>        (REQUIRED)
  528.            Control that the aircraft is flying towards this point.
  529.  
  530.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  531.            Defines the wanted precision in distance from the point (unit is 
  532.        nm). 
  533.        If the aircraft has been within this distance, and has moved further
  534.        away, then start complaining.
  535.  
  536.     ACTION <actions>            (OPTIONAL, default is no action)
  537.        Actions will be executed when the aircraft is near the given point.
  538.  
  539.     CONTROL RADIAL: 
  540.     ---------------
  541.        This control is used to control that an aircraft is flying along a given
  542.        radial from/to a point. The control doesn't check whether the aircraft
  543.        is flying towards or away from the point!
  544.  
  545.        The following parameters may be given:
  546.  
  547.        POINT  <pointtype>:<pointid>        (REQUIRED)
  548.            Control that the aircraft is flying on a radial from this point.
  549.  
  550.        RADIAL <TO/FROM> <radial>        (REQUIRED)
  551.            The aircraft should be near this radial.
  552.  
  553.            TO/FROM defines whether the given radial is a "to" or "from" radial.
  554.        NOTE: This doesn't tell whether the aircraft should fly towards or
  555.        away from the point, only wheter the radial is to the point or from
  556.        the point (in the same manner as the FROM/TO indicator on a VOR).
  557.  
  558.        Examples:
  559.             RADIAL TO 110
  560.         RADIAL FROM 290
  561.  
  562.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  563.            Defines the wanted precision in distance from the point (unit is 
  564.        nm). 
  565.        If the aircraft is closer than this distance to the point, then 
  566.        don't send any messages to the aircraft as the radial information 
  567.        varies too fast.
  568.  
  569.        RPRECISION <precision>            (OPTIONAL, default is 5 deg.)
  570.            Defines the wanted radial precision (in degrees). If the aircraft is
  571.        more than this distance from the assigned radial, then complain.
  572.  
  573.     ACTION <actions>            (OPTIONAL, default is no action)
  574.        Actions will be executed when the aircraft is near the given point.
  575.  
  576.  
  577.     CONTROL SPEED: 
  578.     --------------
  579.        This control is used to control that an aircraft is flying with a given
  580.        speed.
  581.  
  582.        The following parameters may be given:
  583.  
  584.        SPEED <speed in knots>            (OPTIONAL)
  585.            Control that the aircraft is flying with this speed, or that it is 
  586.        in the process of obtaining this speed.
  587.        If this parameter is left out, then the parameter given with the
  588.        SPEED command is used instead. 
  589.  
  590.        SPRECISION <precision>            (OPTIONAL, default is 10 kts.)
  591.            Defines the wanted precision in speed.
  592.  
  593.     ACTION <actions>            (OPTIONAL, default is no action)
  594.        Actions will be executed when the aircraft is near the given speed.
  595.  
  596.  
  597.     CONTROL VECTOR: 
  598.     ---------------
  599.        This control is used to direct an aircraft to a given point by giving
  600.        atc vectors. 
  601.        NOTE: This control hasn't tested in this version!!!!
  602.  
  603.        The following parameters may be given:
  604.  
  605.        POINT  <pointtype>:<pointid>        (REQUIRED)
  606.            Give vectors to this point.
  607.  
  608.        RADIAL <radial>                (REQUIRED)
  609.            The vectors should lead up to a point on this radial from the point.
  610.        The aircraft will be heading in the general direction of the point 
  611.        after the last vector.
  612.  
  613.        DIST1 <distance>                (OPTIONAL, default is 10 nm)
  614.            The last vector lead up to the point which is this many nm from the
  615.        point.
  616.  
  617.        DIST2 <distance>                (OPTIONAL, default is 15 nm)
  618.            Previous vectors should lead to points this far from the central   
  619.        point. (dist2 should be greater than dist1).
  620.  
  621.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  622.            When the aircraft is closer than this value from a point, then 
  623.        vector it towards the next point.
  624.  
  625.        CPRECISION <precision>            (OPTIONAL, default is 5 deg.)
  626.        The aircraft should follow the vectors with this precision.
  627.  
  628.     ACTION <actions>            (OPTIONAL, default is no action)
  629.        Actions will be executed when the aircraft is at the end of the 
  630.        final vector.
  631.  
  632.  
  633. Triggers:
  634. ===========
  635.     A trigger defines a condition that ATCCOM should monitor 
  636.     such as reaching a given altitude, course, speed, point etc.
  637.     When the condition is obtained, the the trigger is said to execute, 
  638.     and an action is executed. This action could be to send a message to the 
  639.     aircraft, shift to the next leg of the route or any other command.
  640.  
  641.     The format of a trigger command is:
  642.  
  643.     TRIGGER <type>
  644.         <parameter1> <value1>
  645.     <parameter2> <value2>
  646.     .         .
  647.     END
  648.  
  649.     GTRIGGER <type>
  650.     Name         <value>
  651.         <parameter1> <value1>
  652.     <parameter2> <value2>
  653.     .         .
  654.     END
  655.  
  656.     Here <type> defines the type of the trigger (see below); the other lines 
  657.     define the attributes of the trigger.
  658.  
  659.     The following parameters may be used in all the different trigger types:
  660.  
  661.  
  662.         ACTION    <a command>         (OOPTIONAL, default is NEXT)
  663.         Defines the actions to execute when the trigger condition is 
  664.         triggered. 
  665.         The command may be any combination of the following:
  666.     
  667.             ALTITUDE <altitude>
  668.                 Define the altitude used for global altitude controls 
  669.             which doesn't explicitly mention an altitude.
  670.  
  671.             SPEED <speed>
  672.                 Define the speed used for global speed controls 
  673.             which doesn't explicitly mention an speed.
  674.  
  675.         FLALTITUDE <altitude>
  676.                 Defines where the transition from/to flightlevels is.
  677.  
  678.             MESSAGE <a message>
  679.             Execute the message command as described above.
  680.  
  681.         NEXT
  682.             Finish the current WAIT, and continue with the program.
  683.             This is the default action.
  684.  
  685.         GOTO <label>
  686.             Finish the current WAIT, and jump to the label.
  687.  
  688.         GOSUB <label>
  689.             Temporarily, jump to the label. When a RETURN command is 
  690.             encountered, control is returned.
  691.  
  692.             RETURN
  693.             Return from a GOSUB call.
  694.  
  695.         STOP
  696.             Stop the atc program.
  697.  
  698.         OFF <name>
  699.             Turn off the trigger or control with the given name.
  700.  
  701.  
  702.     REPEAT    <delay in seconds>        (OPTIONAL)
  703.         If this parameter is given (and is greater than 0), then reactivate
  704.         the trigger after this time.
  705.         This may be relevant for all named (global) triggers, and for 
  706.         both local and global message triggers.
  707.         Example:
  708.             You can create a trigger that checks whether the aircraft exceed
  709.         250 knots. Just create a named speed trigger with speed = 250,
  710.         Repeat = 20 and Message = "Reduce speed to 250 knots".
  711.         If this is done, then the aircraft will get the message 
  712.         "Reduce speed to 250 knots" every 20 seconds if it exceeds the 
  713.         speed limit.
  714.  
  715.     NAME <trigger name>            (OPTIONAL)
  716.         Gives a name to a trigger, this is required for global triggers.
  717.         A named trigger is unique. If you create another trigger with the
  718.         same name, the previous is turned off automatically.        
  719.  
  720.     Ok, now for the different trigger types:
  721.  
  722.     TRIGGER ALTITUDE: 
  723.     -----------------
  724.        This triggers when the aircraft reaches the specified altitude.
  725.        given altitude:
  726.  
  727.        The following parameters may be given:
  728.  
  729.        ALTITUDE  <altitude>            (REQUIRED)
  730.            Defines the wanted altitude in feet.
  731.        If the altitude is preceeded with a less-than character (<), then 
  732.        the trigger executes when the aircraft is BELOW the given altitude.
  733.        If the altitude is preceeded with a greater-than character (>), then 
  734.        the trigger executes when the aircraft is ABOVE the given altitude.
  735.        Otherwise the trigger executes when the aircraft is "near" the
  736.        given altitude. ("near" is defined by APRECISION).
  737.  
  738.        APRECISION <precision>            (OPTIONAL, default is 200 ft)
  739.            Defines the wanted precision in altitude. 
  740.        The trigger executes if the altitude is within this
  741.        distance from the wanted altitude.
  742.  
  743.  
  744.     TRIGGER DIST:   
  745.     --------------
  746.        This triggers when the aircraft is at a given distance from a point.
  747.  
  748.        The following parameters may be given:
  749.  
  750.        POINT  <pointtype>:<pointid>        (REQUIRED)
  751.            Trigger at a given distance from this point.
  752.  
  753.        DISTANCE  <distance>            (REQUIRED)
  754.            Defines the wanted distance in nm.
  755.        If the distance is preceeded with a less-than character (<), then 
  756.        the trigger executes when the aircraft is closer to the point than 
  757.        this distance.
  758.        If the altitude is preceeded with a greater-than character (>), then 
  759.        the trigger executes when the aircraft is further away
  760.        than this distance.
  761.        Otherwise the trigger executes when the aircraft passing the given 
  762.        distance.
  763.  
  764.  
  765.     TRIGGER FREQUENCY:   
  766.     -------------------
  767.        This triggers when the pilot dials a certain frequency, or contacts
  768.        the frequency.
  769.        NOTE: I haven't been able to get frequency information from FS5, so 
  770.        the pilot must dial the frequency by sending the "C" command (see the 
  771.        users guide).
  772.        Because of this I have optional to dial the frequency, it is ok just
  773.        to send the "R" command to report.
  774.  
  775.  
  776.        The following parameters may be given:
  777.  
  778.        FREQUENCY <frequency>            (REQUIRED)
  779.            The frequency the user should dial.
  780.  
  781.        CHECKIN (0 or 1)              (OPTIONAL, default is 1)
  782.            If this is 1, then the user should also report to the frequency by
  783.        sending the "R" command.
  784.  
  785.        Example:
  786.            If you want to create an ATIS frequency, then create a global trigger
  787.        and set Checkin to 0.
  788.        To create a tower frequency, create a trigger and set Checkin to 1.
  789.  
  790.     TRIGGER HEADING:   
  791.     -------------------
  792.        This triggers when the aircraft reaches a certain heading.            
  793.  
  794.  
  795.        The following parameters may be given:
  796.  
  797.        HEADING <heading>            (REQUIRED)
  798.            Wait for the user to reach this heading.
  799.  
  800.        HPRECISION <precision>            (OPTIONAL, default is 5 deg.)
  801.            Defines the wanted precision in heading. 
  802.        The trigger executes if the actual heading is within this distance 
  803.        from the wanted heading.
  804.  
  805.        POINT  <pointtype>:<pointid>        (OPTIONAL)
  806.            Use magnetic variation from this point. You should either specify
  807.        a point, or directly specify a magnetic variation by using the 
  808.        MVAR parameter.
  809.  
  810.     MVAR    <magnetic variation in deg>    (OPTIONAL)
  811.        Use this magnetic variation when computing headings.
  812.        You should either specify this, or specify a point with the POINT
  813.        parameter.
  814.  
  815.     TRIGGER POINT:   
  816.     --------------
  817.        This triggers when the aircraft is passing a given point.
  818.  
  819.        The following parameters may be given:
  820.  
  821.        POINT  <pointtype>:<pointid>        (REQUIRED)
  822.            Trigger when passing this point.
  823.  
  824.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  825.            Defines the wanted precision in distance. 
  826.        If the aircraft is closer to the point than this distance, and the
  827.        distance is increasing, then trigger.
  828.  
  829.     TRIGGER RADIAL:   
  830.     --------------
  831.        This triggers when the aircraft is at a given radial from a point.
  832.  
  833.        The following parameters may be given:
  834.  
  835.        POINT  <pointtype>:<pointid>        (REQUIRED)
  836.            The radial is defined relative to this point.                     
  837.  
  838.        RADIAL <TO/FROM> <radial>        (REQUIRED)
  839.            The aircraft should be near this radial.
  840.  
  841.            TO/FROM defines whether the given radial is a "to" or "from" radial.
  842.        NOTE: This doesn't tell whether the aircraft should fly towards or
  843.        away from the point, only wheter the radial is to the point or from
  844.        the point (in the same manner as the FROM/TO indicator on a VOR).
  845.  
  846.        Examples:
  847.             RADIAL TO 110
  848.         RADIAL FROM 290
  849.  
  850.        DPRECISION <precision>            (OPTIONAL, default is 5 nm)
  851.            Defines the wanted precision in distance from the point (unit is 
  852.        nm). 
  853.        If the aircraft is closer than this distance to the point, then 
  854.        execute the trigger.
  855.  
  856.        RPRECISION <precision>            (OPTIONAL, default is 5 deg.)
  857.            Defines the wanted radial precision (in degrees). If the aircraft is
  858.        closer than this distance from the assigned radial, then execute 
  859.        the trigger.
  860.  
  861.     TRIGGER SPEED:   
  862.     --------------
  863.        This triggers when the aircraft has obtained a given speed.
  864.  
  865.        The following parameters may be given:
  866.  
  867.        SPEED <speed in knots>            (REQUIRED)
  868.            Trigger at this speed.
  869.  
  870.        SPRECISION <precision>            (OPTIONAL, default is 10 kts).
  871.            Defines the wanted speed precision (in knots). If the aircraft is
  872.        closer than this distance from the assigned speed, then execute 
  873.        the trigger.
  874.  
  875.     TRIGGER TIME:   
  876.     --------------
  877.        This triggers after a given delay.
  878.  
  879.        The following parameters may be given:
  880.  
  881.        DELAY <delay in seconds>            (REQUIRED)
  882.            Trigger after this number of seconds.
  883.  
  884.     TRIGGER TEXT:   
  885.     --------------
  886.        This triggers when the user sends a certain command.
  887.  
  888.        The following parameters may be given:
  889.  
  890.        TEXT <text>                (REQUIRED)
  891.            Trigger when the pilot sends this text.
  892.  
  893.  
  894. ============================================================================
  895. Copyrights Etc:
  896. ============================================================================
  897. This version of ATCCOM is freeware and for private non-profit use only.
  898. CD-ROM distribution of this archive is NOT allowed.
  899.  
  900. ============================================================================
  901. Conclusion:
  902. ============================================================================
  903. Well, that's all. I hope you'll enjoy ATCCOM. Please remember that this
  904. is version 0.1 of the program, and that it may (and probably will) contain
  905. a few bugs.
  906. Feel free to contact me with suggestions for enhancements, bug reports or
  907. requests for help.
  908.  
  909. Helge E. Rasmussen
  910.  
  911. Internet  : her@compel.dk
  912. Compuserve: 100343, 2377
  913.  
  914.